//    Openbravo POS is a point of sales application designed for touch screens.
//    Copyright (C) 2007-2009 Openbravo, S.L.
//    http://www.openbravo.com/product/pos
//
//    This file is part of Openbravo POS.
//
//    Openbravo POS is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    Openbravo POS is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with Openbravo POS.  If not, see <http://www.gnu.org/licenses/>.

package com.openbravo.pos.panels;

import com.openbravo.data.basic.BasicException;
import com.openbravo.data.user.I_SaveProvider;
import com.openbravo.data.user.I_ListProvider;
import com.openbravo.pos.base.AppLocal;
import com.openbravo.pos.base.AppView;
import com.openbravo.pos.bean.QuickPayment;
import com.openbravo.pos.model.BaseSwingModel;

import cn.ekuma.data.ui.swing.SwingEditorRecord;
import cn.ekuma.epos.datalogic.I_DataLogicSales;
import cn.ekuma.rabbit.spi.I_ModelPart;

/**
 *
 * @author adrianromero
 */
public class JPanelPayments extends JPanelTable implements I_ModelPart<BaseSwingModel>  {
    
    private PaymentsEditor jeditor;    
    private I_DataLogicSales m_dlSales = null;
    
    /** Creates a new instance of JPanelPayments */
    public JPanelPayments() {
    }
    
    protected void init() {    
        jeditor = new PaymentsEditor((AppView) app, dirty);    
    }
    
    public I_ListProvider getListProvider() {
        return null;
    }
    
    public I_SaveProvider getSaveProvider() {
        return  new I_SaveProvider<QuickPayment>(){

			@Override
			public boolean canDelete() {
				return true;
			}

			@Override
			public int deleteData(QuickPayment value) throws BasicException {
				return m_dlSales.paymentMovementDelete(value.getReceipt().getId(), value.getPaymentInfoTicket().getM_transactionID());
			}

			@Override
			public boolean canInsert() {
				return true;
			}

			@Override
			public int insertData(QuickPayment value) throws BasicException {
				return m_dlSales.paymentMovementInsert(value);
			}

			@Override
			public boolean canUpdate() {
				return false;
			}

			@Override
			public int updateData(QuickPayment value) throws BasicException {
				return 0;
			}
        	
        };
    }
    
    public SwingEditorRecord getEditor() {
        return jeditor;
    }
    
    public String getTitle() {
        return AppLocal.getIntString("Menu.Payments");
    }

	@Override
	public String getModelName() {	
		return BaseSwingModel.NAME;
	}

	@Override
	public void setModel(BaseSwingModel mode) {
		 m_dlSales = mode.getDLSales(); 
		
	}    
}
